H264 您所在的位置:网站首页 slice ice游戏 H264

H264

2024-01-26 11:41| 来源: 网络整理| 查看: 265

H.264(九)Slice数据和宏块结构

H.264的语法单元:H.264中没有I图像,P图像和B图像的概念,取而代之的是I片,P片和B片: 在这里插入图片描述

0、Slice的概念

在这里插入图片描述

定义Slice的意义:为限制误码的扩散和传输 1、一个Slice:包含某一帧的全部(不分片时)或部分数据(分片时) 2、不同的slice之间,其解码操作独立👉防止误码的扩散     slice的解码过程所参考的数据(例如预测编码)不能越过slice的边界

图像解码过程中总是按照片slice进行解码,然后按照片组将解码宏块重组成图像。

5种Slice的类型 根据码流中不同的数据类型,H.264标准中共定义了5种Slice类型: I slice: 帧内编码的条带; 只包含I宏块 P slice: 单向帧间编码的条带; 包含P宏块,可能有I宏块 B slice: 双向帧间编码的条带; 包含B宏块,可能有I宏块 SI slice: 切换I条带,用于扩展档次中码流切换使用; SI + I SP slice: 切换P条带,用于扩展档次中码流切换使用; P + I 0、 slice通过nalu装载并进行网络传输

NALU内可以是切片,也可能装载着其他用作描述视频的信息,如sps ppe等。

1、若不采用DP数据分割机制,一片只包含1个NALU, 2、若采用DP数据分割,则一片拆分成3个NALU,nal_unit_type值等于2、3、4(A、B、C)的NALU属于同一个片   分割A:包含片头和片中每个宏块头数据。 nal_unit_type=2    分割B:包含帧内和 SI 片宏块的编码残差数据。 nal_unit_type=3    分割C;包含帧间宏块的编码残差数据。 nal_unit_type=4    每个分割可放在独立的 NAL 单元并独立传输。    //如果分割 A 数据丢失,便很难或者不能重建片,因此分割 A 对传输误差很敏感。    //解码器可根据要求只解 A 和 B 或者A和 C,以降低在一定传输条件下的复杂度。 1、4类Slice

在这里插入图片描述 在这里插入图片描述

Slice_body,通常是一组连续的宏块结构(或者宏块跳过信息) 在这里插入图片描述

1.1 Slice_Header 1、first_mb_in_slice:片中的第一个宏块的地址, 片通过这个句法元素来标定它自己的地址。 注意:在【帧场自适应模式】下,宏块都是成对出现,这时本句法元素表示的是第几个宏块对, 对应的第一个宏块的真实地址应该是2 * first_mb_in_slice 2、slice_type:指明片的类型,IDR 图像时, slice_type 等于 2, 4, 7, 9。 num_of_slice_type slice_type 0 P(P slice) 1 B(B slice) 2 I(I slice) 3 SP(SP slice) 4 SI(SI slice) 5 P(P slice) 6 B(B slice) 7 I(I slice) 8


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有